package com.swanclouds.model.systems.builder.Oem.BMC;

import com.swanclouds.common.Buildable;

import java.util.List;

/**
 * {
 *     "CapacityBytes":"capacity",
 *     "OptimumIOSizeBytes":"optsize",
 *     "Oem":{
 *         "Huawei":{
 *             "CreateCacheCadeFlag":"cacheCadeFlag",
 *             "Drives":[
 *                 "drives"
 *             ],
 *             "VolumeRaidLevel":"raidlevel",
 *             "VolumeName":"name",
 *             "DefaultReadPolicy":"df_read_policy",
 *             "DefaultWritePolicy":"df_write_policy",
 *             "DefaultCachePolicy":"df_cache_policy",
 *             "SpanNumber":"spnanum",
 *             "AccessPolicy":"access_policy",
 *             "DriveCachePolicy":"disk_cache_policy",
 *             "InitializationMode":"initmode",
 *             "BlockIndex":"blockindex"
 *         }
 *     }
 * }
 *
 * {
 *     "VolumeName":"volume_name",
 *     "Drives":[
 *         "drives"
 *     ],
 *     "VolumeRaidLevel":"volume_raid_level",
 *     "SpanNumber":"span_number",
 *     "CapacityBytes":"capacipy_bytes",
 *     "DefaultReadPolicy":"default_read_policy",
 *     "DefaultWritePolicy":"default_write_policy",
 *     "DefaultCachePolicy":"default_cache_policy",
 *     "AccessPolicy":"access_policy",
 *     "DriveCachePolicy":"drive_cache_policy",
 *     "InitializationMode":"initialization_mode",
 *     "OptimumIOSizeBytes":"optimum_io_size_bytes"
 * }
 * @author 张立强
 *
 */
public interface BMCCreateVolumeBuilder extends Buildable.Builder<BMCCreateVolumeBuilder, BMCCreateVolume> {

    BMCCreateVolumeBuilder volumeName(String volumeName);

    BMCCreateVolumeBuilder drives(List<String> drives);

    BMCCreateVolumeBuilder addDrive(String drives);

    BMCCreateVolumeBuilder volumeRaidLeve(String volumeRaidLeve);

    BMCCreateVolumeBuilder spanNumber(Integer spanNumber);

    BMCCreateVolumeBuilder capacityBytes(Long capacityBytes);

    BMCCreateVolumeBuilder DefaultReadPolicy(String defaultReadPolicy);

    BMCCreateVolumeBuilder DefaultWritePolicy(String defaultWritePolicy);

    BMCCreateVolumeBuilder DefaultCachePolicy(String defaultCachePolicy);

    BMCCreateVolumeBuilder AccessPolicy(String accessPolicy);

    BMCCreateVolumeBuilder DriveCachePolicy(String driveCachePolicy);

    BMCCreateVolumeBuilder InitializationMode(String initializationMode);

    BMCCreateVolumeBuilder OptimumIOSizeBytes(Integer optimumIOSizeBytes);

}
